home *** CD-ROM | disk | FTP | other *** search
/ Grand Slam 3 / Grand Slam 3.iso / 030 / airpt119.arj / AIRPT052.API < prev    next >
Text File  |  1995-09-26  |  6KB  |  265 lines

  1. ; Fichier include SCASM AIRPT052.API pour POLY3D TYPE = &PHARE1
  2. ; SCASM include file AIRPT052.API for POLY3D TYPE = &PHARE1
  3.  
  4. ; (Manfred Moldenhauer)
  5. ;
  6. ;       lighthouse type 1
  7. ;       prototype Hornum/Sylt, build in 1906
  8. ;
  9. ;       corrected version 27/Mar/1995
  10. ;
  11. ;       by Manfred Moldenhauer CIS 100117,1465
  12. ;
  13. ;       macro( mmlths1.scm  lat  lon  mask color1 color2 roof_color )
  14. ;
  15. ;       parameter numbers:   1    2     3    4      5        6
  16. ;
  17. ;       typical values:                00FF  4      5        2
  18. ;
  19. ;       mask is a hexadecimal bitmask for the running bit in the
  20. ;       timer variable 282.
  21. ;
  22.  
  23.  
  24. Area( b %1  %2  %3 )
  25.     
  26.     PerspectiveCall( :A )
  27.     ShadowCall( :B )
  28.     Jump( : )
  29.  
  30. :A
  31.     Perspective
  32. :B
  33.     Refpoint( 2 :E  %4  %1  %2 v1= %10 E= %11 )
  34.     VecPoints( xy 0
  35.     -16  0  0       -11  0  11      0  0  16         11  0  11
  36.      16  0  0        11  0 -11      0  0 -16        -11  0 -11
  37.  
  38.     -16 16  0       -11 16  11      0 16  16         11 16  11
  39.      16 16  0        11 16 -11      0 16 -16        -11 16 -11
  40.  
  41.     -13 52  0        -9 52   9      0 52  13         9 52  9
  42.      13 52  0         9 52  -9      0 52 -13        -9 52 -9
  43.  
  44.     -11 72  0        -8 72   8      0 72  11         8 72  8
  45.      11 72  0         8 72  -8      0 72 -11        -8 72 -8
  46.  
  47.      -8 108  0      -6 108  6       0 108   8        6 108  6
  48.       8 108  0       6 108 -6       0 108  -8       -6 108 -6
  49.     )
  50.     Points( 40
  51.     -12 108  0      -9 108  9       0 108  12        9 108  9
  52.      12 108  0       9 108 -9       0 108 -12       -9 108 -9
  53.     )
  54.     VecPoints( xy 48
  55.     -8 108  0       -4 108  7        4 108  7       8 108  0
  56.      4 108 -7       -4 108 -7
  57.  
  58.     -8 120  0       -4 120  7        4 120  7       8 120  0
  59.      4 120 -7       -4 120 -7
  60.  
  61.     -8 128  0       -4 128  7        4 128  7       8 128  0
  62.      4 128 -7       -4 128 -7
  63.  
  64.      0 136 0
  65.     )
  66.     Monitor3D( :nocrash  -3 3   0 34   -3 3 )
  67.     SetVar( 284 14 )
  68. :nocrash
  69.     IfVarRange( :far 37E -2000 2000 )
  70.     IfVarRange( :far 386 -2000 2000 )
  71.  
  72.     ; platform bottom view
  73.     SurfaceColor( 1 F0 )
  74.     Poly( ad    40 41 42 43 44 45 46 47 )
  75.  
  76.     ShadedColor( %6 F0 ) 
  77.     ShadedPoly( a 0 1  9  8 )
  78.     ShadedPoly( a 1 2 10  9 )
  79.     ShadedPoly( a 2 3 11 10 )
  80.     ShadedPoly( a 3 4 12 11 )
  81.     ShadedPoly( a 4 5 13 12 )
  82.     ShadedPoly( a 5 6 14 13 )
  83.     ShadedPoly( a 6 7 15 14 )
  84.     ShadedPoly( a 7 0  8 15 )
  85.  
  86.     ShadedColor( %7 F0 ) 
  87.     ShadedPoly( a  8  9 17 16 )
  88.     ShadedPoly( a  9 10 18 17 )
  89.     ShadedPoly( a 10 11 19 18 )
  90.     ShadedPoly( a 11 12 20 19 )
  91.     ShadedPoly( a 12 13 21 20 )
  92.     ShadedPoly( a 13 14 22 21 )
  93.     ShadedPoly( a 14 15 23 22 )
  94.     ShadedPoly( a 15  8 16 23 )
  95.  
  96.     ShadedColor( %6 F0 ) 
  97.     ShadedPoly( a 16 17 25 24 )
  98.     ShadedPoly( a 17 18 26 25 )
  99.     ShadedPoly( a 18 19 27 26 )
  100.     ShadedPoly( a 19 20 28 27 )
  101.     ShadedPoly( a 20 21 29 28 )
  102.     ShadedPoly( a 21 22 30 29 )
  103.     ShadedPoly( a 22 23 31 30 )
  104.     ShadedPoly( a 23 16 24 31 )
  105.  
  106.     ShadedColor( %7 F0 ) 
  107.     ShadedPoly( a 24 25 33 32 )
  108.     ShadedPoly( a 25 26 34 33 )
  109.     ShadedPoly( a 26 27 35 34 )
  110.     ShadedPoly( a 27 28 36 35 )
  111.     ShadedPoly( a 28 29 37 36 )
  112.     ShadedPoly( a 29 30 38 37 )
  113.     ShadedPoly( a 30 31 39 38 )
  114.     ShadedPoly( a 31 24 32 39 )
  115.  
  116.     ; plattform top view
  117.     SurfaceColor( 1 F0 )
  118.     Poly( a     40 41 42 43 44 45 46 47 )
  119.  
  120.     ; lamp housing, bottom
  121.     ShadedColor( 2 F0 )
  122.     ShadedPoly( a 48 49 55 54 )
  123.     ShadedPoly( a 49 50 56 55 )
  124.     ShadedPoly( a 50 51 57 56 )
  125.     ShadedPoly( a 51 52 58 57 )
  126.     ShadedPoly( a 52 53 59 58 )
  127.     ShadedPoly( a 53 48 54 59 )
  128.  
  129.     ; lamp
  130.     SurfaceColor( 13 F0 )        ; color, lamp off
  131.     ;IfVarAnd( :C 28C FFFE )
  132.     IfVarAnd( :C 282 00FF )
  133.     SurfaceColor( 15 F0 )       ; color, lamp on
  134. :C
  135.     Poly( a 54 55 61 60 )
  136.     Poly( a 55 56 62 61 )
  137.     Poly( a 56 57 63 62 )
  138.     Poly( a 57 58 64 63 )
  139.     Poly( a 58 59 65 64 )
  140.     Poly( a 59 54 60 65 )
  141.  
  142.     ; roof
  143.     ShadedColor( %5 F0 ) ;ShadedColor( %6 F0 )
  144.     ShadedPoly( a 66 60 61 )
  145.     ShadedPoly( a 66 61 62 )
  146.     ShadedPoly( a 66 62 63 )
  147.     ShadedPoly( a 66 63 64 )
  148.     ShadedPoly( a 66 64 65 )
  149.     ShadedPoly( a 66 65 60 )
  150.  
  151. :E
  152.     Return
  153.  
  154. :far
  155.     SurfaceColor( %6 F0 )   
  156.     Brightness( 50 )
  157.     StartSurface
  158.     MoveToPt( 0 )
  159.     DrawToPt( 8 12 4 )
  160.     EndSurface
  161.     StartSurface
  162.     MoveToPt( 2 )
  163.     DrawToPt( 10 14 6 )
  164.     EndSurface
  165.  
  166.     SurfaceColor( %7 F0 )  
  167.     Brightness( 50 )
  168.     StartSurface
  169.     MoveToPt( 8 )
  170.     DrawToPt( 16 20 12 )
  171.     EndSurface
  172.     StartSurface
  173.     MoveToPt( 10 )
  174.     DrawToPt( 18 22 14 )
  175.     EndSurface
  176.  
  177.     SurfaceColor( %6 F0 )   
  178.     Brightness( 50 )
  179.     StartSurface
  180.     MoveToPt( 16 )
  181.     DrawToPt( 24 28 20 )
  182.     EndSurface
  183.     StartSurface
  184.     MoveToPt( 18 )
  185.     DrawToPt( 26 30 22 )
  186.     EndSurface
  187.  
  188.     SurfaceColor( %7 F0 )  
  189.     Brightness( 50 )
  190.     StartSurface
  191.     MoveToPt( 24 )
  192.     DrawToPt( 32 36 28 )
  193.     EndSurface
  194.     StartSurface
  195.     MoveToPt( 26 )
  196.     DrawToPt( 34 38 30 )
  197.     EndSurface
  198.  
  199.     SurfaceColor( 2 F0 )
  200.     Brightness( 50 )
  201.     StartSurface
  202.     MoveToPt( 48 )
  203.     DrawToPt( 54 57 51 )
  204.     EndSurface
  205.     StartSurface
  206.     MoveToPt( 49 )
  207.     DrawToPt( 55 58 52 )
  208.     EndSurface
  209.     StartSurface
  210.     MoveToPt( 50 )
  211.     DrawToPt( 56 59 53 )
  212.     EndSurface
  213.  
  214.     ;  lamp housing
  215.     ;
  216.     SurfaceColor( 3 F0 )
  217.     Brightness( 50 )
  218.     SurfaceColor( 10 F0 )
  219.     IfVarAnd( :F2 282 00FF )
  220.     SurfaceColor( 15 F0 )
  221. :F2
  222.     StartSurface
  223.     MoveToPt( 54 )
  224.     DrawToPt( 60 63 57 )
  225.     EndSurface
  226.     StartSurface
  227.     MoveToPt( 55 )
  228.     DrawToPt( 61 64 58 )
  229.     EndSurface
  230.     StartSurface
  231.     MoveToPt( 56 )
  232.     DrawToPt( 62 65 59 )
  233.     EndSurface
  234.  
  235.     Return
  236.  
  237. EndA
  238.  
  239. ;
  240. ;       Far away view, lamp only !
  241. ;
  242. Area( b  %1  %2  80 )
  243.     IfVarAnd( : 28C FFFE )
  244.     PerspectiveCall( :lamp )
  245.     Jump( : )
  246.  
  247. :lamp
  248.     Perspective
  249.     RefPoint( 7 :l_end 1  %1  %2  )     ; corrected line 27/mar/95
  250.     IfVarRange( :far 37E -3000 3000 )
  251.     IfVarRange( :far 386 -3000 3000 )
  252.     Jump( :l_end )
  253. :far
  254.     LineColor( 15 F0 )
  255.     IfVarAnd( :pm03 282 00FF )
  256.     LineColor( 13 F0 )
  257.     
  258. :pm03
  259.     Brightness( 100 )
  260.     Dot( 0 31 0 )
  261. :l_end
  262.     Return
  263.  
  264. EndA
  265.